/**
* Copyright (C) 2011 David Bothwell
* All rights reserved.
* 
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
*    
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the
*    documentation and/or other materials provided with the distribution.
*    
* 3. Neither the name of the project nor the names of its contributors
*    may be used to endorse or promote products derived from this software
*    without specific prior written permission.
* 
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

package db.remoteLinuxMonitor;

import java.awt.Color;
import java.awt.FlowLayout;
import java.util.ArrayList;

import javax.swing.JPanel;

public class LegendPanel extends JPanel {
	

	private GraphPanel graphPanel = null;
	private ArrayList<LegendButton> buttons = new ArrayList<LegendButton>(); 

	public LegendPanel(GraphPanel graphPanel) {
		super();
		this.graphPanel = graphPanel;
		
		FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT, 5, 1);
		setLayout(flowLayout);
	}
	
	protected void setYPoint(YPoint yPoint) {
		
		if (buttons.size() == 0) {
			
			for (int i = 0; i < yPoint.getVertices().size(); i++) {

				buttons.add(new LegendButton(yPoint.getVertices().get(i), yPoint.getColorAtIndex(i), this));
			}
			
			for (LegendButton button: buttons) {
				
				add(button);
			}
			
//			double weighty = ((int) (buttons.size() / 8)) + 1;
//			graphPanel.setGBCLegendWeighty(weighty);
			
		} else {
			
			for (int i = 0; i < yPoint.getVertices().size(); i++) {

				buttons.get(i).setText(yPoint.getVertices().get(i).getLegendText());
			}

		}
		revalidate();
	}
	
	protected void setColorAtIndex(int index, Color color) {
		
		graphPanel.setColorAtIndex(index, color);
	}
}
